Аудит курса Kodland 1741

Проверка библиотек

Дополнительно выполнены изолированные проверки установки и API. Открыть технический отчёт · Проверенные зависимости.

Проверка курса Python LVL3, ID 1741 — 24 октября 2026 года.

Обойдены 40 уроков, открыты 279 карточек заданий: проверены доступные тексты условий, теория, видимые фрагменты редакторов и согласованность последовательности. Дополнительно прочитан доступный текст 302 слайдов в 43 из 44 обнаруженных уникальных встроенных презентаций и открытые страницы 8 внешних форм. Одна презентация M3L2 (задание 158993) не открылась при повторных попытках. В первой многостраничной форме прочитаны введение и страница вопросов; страницы после отправки не открывались.

Это редакторская и содержательная проверка доступных материалов, а не полный технический прогон курса. Встроенные итоговые тесты не запускались, ответы и формы не отправлялись, оценки не менялись. Не выполнен полный аудит видео, изображений с текстом, правильности цветового выделения ответов на слайдах, содержимого всех внешних репозиториев и методичек. Длинные редакторы показывают только часть исходного кода: непоказанная часть не считается проверенной. Для завершения проверки этих слоёв нужен отдельный проход по ним. Отсутствие строки в отчёте не означает, что задание полностью безошибочно.

Намеренные ошибки в упражнениях «исправь код», незаполненные шаблоны и псевдокод не засчитывались как дефекты. Исключение — несогласованное описание таких упражнений, например обещание ровно трёх ошибок при наличии четырёх требуемых исправлений.

«Высокий» — пример ломается, команда неверна, вопрос закрепляет неверное правило или инструкция ведёт к публикации токена. «Средний» — фактическая неточность, неоднозначность, несогласованность или методический пробел. «Низкий» — языковая/редакторская правка. Несколько одинаковых опечаток объединены в одну запись. Методические предложения помечены отдельно от воспроизведённых ошибок.

127 записей · Высокий: 31 · Средний: 60 · Низкий: 36

№ГдеЧто исправить
001M1L1
158936
Высокий
Содержание и работоспособность

Фрагмент: Загадка о конфетах: при делении пополам одна лишняя, при делении на три — недостаточно

Проблема: Условие не задаёт однозначного количества конфет. Не определены остаток при делении на 3, диапазон и требование минимальности.

Исправление: Например: «Найди наименьшее число конфет больше 1, которое при делении на 2 даёт остаток 1, а при делении на 3 — остаток 2». Ответ: 5. Уточнить, что найти нужно число, а не перебрать произвольные варианты.

Проверка текста и логики
002M1L1
158937
Средний
Содержание и работоспособность

Фрагмент: Но класс != объект

Проблема: Категоричное противопоставление неверно для Python: классы тоже являются объектами. Сравнивать следует класс и его экземпляр.

Исправление: «Класс и экземпляр этого класса — разные понятия. При этом сам класс в Python тоже является объектом».

Python: Classes
003M1L1
158938
Высокий
Содержание и работоспособность

Фрагмент: ship.angle_to(pos) # поворот персонажа

Проблема: Метод возвращает угол, но сам не поворачивает персонажа.

Исправление: «Вычисляет угол до точки/объекта». Для поворота: ship.angle = ship.angle_to(pos).

Pygame Zero: Actors
004M1L1
158938
Высокий
Содержание и работоспособность

Фрагмент: ship.collidepoint(pos) — нахождение одного персонажа в области другого

Проблема: collidepoint проверяет точку относительно прямоугольной области; это не проверка столкновения двух персонажей. Также Actor относится к Pygame Zero, что в тексте смешано с pygame.

Исправление: Для точки: ship.collidepoint(pos). Для пересечения прямоугольников двух персонажей: ship.colliderect(other). Указать Pygame Zero.

Pygame Zero / pygame.Rect
005M1L1
158938
Средний
Содержание и работоспособность

Фрагмент: Actor("star_ship", ...) # ... картинкой ship

Проблема: Вызов и комментарий называют разные ресурсы; в редакторе используется ship.

Исправление: Согласовать пример, комментарий и ресурс: например, везде Actor("ship", (300, 150)).

Проверка текста и логики
006M1L1
158938
Средний
Содержание и работоспособность

Фрагмент: url = '' перед requests.get(url)

Проблема: Пустой URL делает приведённый фрагмент неработоспособным при копировании.

Исправление: Указать рабочий демонстрационный адрес или явный заполнитель <URL_СТРАНИЦЫ> и инструкцию заменить его.

Проверка текста и логики
007M1L1
158939
Высокий
Содержание и работоспособность

Фрагмент: Методы — функции, которые работают только внутри класса

Проблема: Методы определяются в классе, но вызываются и извне, что показано ниже в самом задании.

Исправление: «Метод — функция, связанная с классом или экземпляром. Методы экземпляра можно вызывать через объект: car.go()».

Проверка текста и логики
008M1L1–M1L4
158939 · 158919 · 158947
Средний
Содержание и работоспособность

Фрагмент: Атрибуты класса / self.make / self.model

Проблема: В объяснениях систематически смешаны атрибуты класса и атрибуты экземпляра. total_ninjas принадлежит классу; self.name — экземпляру.

Исправление: Ввести различие явно и переименовать комментарии к self.make, self.model, self.year в «атрибут экземпляра». Объяснить, что присваивание car.color может создать атрибут экземпляра, перекрывающий атрибут класса.

Python: Classes
009M1L1
158939
Средний
Содержание и работоспособность

Фрагмент: В методах нужно обязательно указать self; по правилам Python классы называются с заглавной буквы

Проблема: self — соглашение для первого параметра обычного метода экземпляра; есть staticmethod и classmethod. Регистр имени — соглашение стиля, не требование синтаксиса.

Исправление: «В обычном методе экземпляра первый параметр принято называть self. Имена классов обычно пишут в CapWords, переменных — в snake_case».

Проверка текста и логики
010M1L1
158941
Средний
Содержание и работоспособность

Фрагмент: Чем отличаются атрибуты, методы, свойства и поля класса?

Проблема: Ранее атрибуты, свойства и поля поданы как синонимы, но здесь требуется их различать без объяснения property.

Исправление: Спросить о различии атрибутов и методов. Различие property и обычного атрибута обсуждать после соответствующего объяснения.

Проверка текста и логики
011M1L2
158919
Высокий
Содержание и работоспособность

Фрагмент: В функции __init__ указываются ВСЕ атрибуты класса

Проблема: Неверное обязательное правило: __init__ обычно инициализирует состояние экземпляра; атрибуты могут определяться и в других местах.

Исправление: «В __init__ обычно задают начальные значения атрибутов экземпляра». Убрать слово «ВСЕ».

Python: Classes
012M1L2
158919
Средний
Содержание и работоспособность

Фрагмент: __init__ — конструктор класса; можно указывать тип данных параметров

Проблема: Нужно отличать создание экземпляра от инициализации. Аннотации типов не проверяют и не преобразуют значения автоматически.

Исправление: Назвать __init__ методом инициализации; при необходимости пояснить роль __new__. К аннотациям добавить, что это подсказки для инструментов, а не автоматическая проверка типов.

Проверка текста и логики
013M1L2
158919
Средний
Содержание и работоспособность

Фрагмент: В ООП принято работать с полями класса через функции, а не явно

Проблема: Обобщение переносит обязательные геттеры/сеттеры на Python. Для простых публичных атрибутов прямой доступ обычен.

Исправление: Описать методы и property как инструменты проверки/вычисления значения, а не обязательное условие любого доступа.

Проверка текста и логики
014M1L2
158923
Высокий
Содержание и работоспособность

Фрагмент: send_welcome может иметь различные атрибуты, здесь это входящее сообщение message

Проблема: message в сигнатуре — параметр функции, а не её атрибут. Также «создание этого класса» описывает создание экземпляра.

Исправление: Заменить на «параметры функции» и «создание экземпляра класса». Пояснить, что @bot.message_handler(...) вызывает метод, возвращающий декоратор.

Проверка текста и логики
015M1L2
158925
Высокий
Содержание и работоспособность

Фрагмент: Отправляет в чат информацию ... с помощью car.info()

Проблема: В предыдущем примере info печатает текст и возвращает None. Его результат нельзя использовать как готовую строку сообщения.

Исправление: Изменить info так, чтобы он возвращал строку через return, и показать bot.send_message(message.chat.id, car.info()).

Проверка текста и логики
016M1L2 и далее
158921 · 158926 · 159006 · 159023 · 159100 · 159137
Высокий
Содержание и работоспособность

Фрагмент: Хранить токен в config.py → загрузить все файлы в GitHub

Проблема: Первые инструкции публикации не исключают файл с токеном; требование не публиковать токен появляется только в M10L2. Это реальная несогласованность учебной последовательности.

Исправление: До первой публикации в M1L2 добавить .gitignore для config.py/.env и config.example.py без секрета. Проверять git diff --cached; не публиковать ключи. В примерах использовать явный заполнитель вместо строки, похожей на действующий токен.

Сопоставление заданий курса; токены в отчёт не скопированы
017M1L3
158930
Высокий
Содержание и работоспособность

Фрагмент: git add — только для нового файла; никакие изменения никуда не сохраняются

Проблема: git add фиксирует текущую версию содержимого в индексе и нужен также для новых изменений отслеживаемого файла.

Исправление: «git add помещает выбранные изменения в индекс для следующего коммита. После дальнейшего редактирования файл нужно добавить повторно».

Git: git-add
018M1L3
158931
Высокий
Содержание и работоспособность

Фрагмент: Проверяем, что пользователь не администратор ... if status == administrator or creator ... И если это так, баним

Проблема: Объяснение противоречит условию: показанное if истинно именно для администратора/создателя.

Исправление: Явно показать ветку запрета с return и вызывать ban_chat_member только в противоположной ветке.

Проверка текста и логики
019M1L3
158934
Высокий
Содержание и работоспособность

Фрагмент: new_chat_members → approve_chat_join_request(message.chat.id, message.from_user.id)

Проблема: Смешаны уже состоявшееся вступление и заявка на вступление. Автор служебного сообщения также не обязательно является новым участником.

Исправление: Для приветствия перебирать message.new_chat_members; для одобрения заявки использовать отдельный обработчик chat_join_request и идентификатор заявителя.

Telegram Bot API: Message / approveChatJoinRequest
020M2L1
158971
Высокий
Содержание и работоспособность

Фрагмент: Определён элементальная_атака(), вызывается спец_атака()

Проблема: Готовый пример наследования падает с AttributeError. Ошибка не заявлена как упражнение.

Исправление: Во всех трёх вызовах использовать элементальная_атака() либо одинаково переименовать определения и вызовы.

Проверка текста и логики
021M2L1
158972
Средний
Содержание и работоспособность

Фрагмент: self.power в родителе; self.сила в Fighter; Wizard / Волшебник

Проблема: Примеры смешивают разные идентификаторы и неопределённую случайное_число. Псевдокод не обозначен явно.

Исправление: Либо подписать фрагменты «псевдокод, переведи в Python», либо использовать enemy, Wizard, randint и self.power последовательно.

Проверка текста и логики
022M2L1 и переводчик
158973 · 158981
Средний
Содержание и работоспособность

Фрагмент: Хранение пользователей по username

Проблема: Имя пользователя Telegram необязательно и может меняться. Разные пользователи без username будут иметь ключ None.

Исправление: Для идентификации использовать message.from_user.id / call.from_user.id; username оставить для отображения.

Telegram Bot API: User
023M2L2
158958
Высокий
Содержание и работоспособность

Фрагмент: Строки сравниваются по количеству символов; при равной длине — лексикографически. Подобным образом списки.

Проблема: Правило неверно. Сначала сравниваются соответствующие элементы; длина решает только при совпадении общего префикса.

Исправление: Дать правило лексикографического сравнения. Контрпримеры: "z" < "aa" — False; [9] < [1, 2] — False, хотя левые последовательности короче.

Воспроизведено Python; Python: Comparing Sequences
024M2L2
158957
Средний
Содержание и работоспособность

Фрагмент: 6 — сумма 3*2=6; класс string

Проблема: 3*2 — произведение; встроенный строковый класс Python называется str, а string — другой модуль.

Исправление: «6 — произведение 3 и 2»; заменить название типа на str. Не использовать str как имя переменной в следующем примере.

Проверка текста и логики
025M2L2
158956
Средний
Содержание и работоспособность

Фрагмент: Wizard — интерфейс, который требует реализации patronus_info; метод содержит pass

Проблема: Обычный метод с pass ничего не требует: класс и наследник можно создать без переопределения.

Исправление: «Базовый класс с общей сигнатурой метода». Если требуется обязательная реализация, показать ABC и @abstractmethod.

Проверка текста и логики
026M2L3
158964 · 158965 · 158967
Средний
Содержание и работоспособность

Фрагмент: Приватные свойства защищают данные от несанкционированного изменения; сейф и пароль

Проблема: В Python __name запускает преобразование имени, но не создаёт защиту от внешнего доступа. Метафора вводит ложное представление о безопасности.

Исправление: Объяснить name mangling и защиту от случайного конфликта/использования. Указать, что _ClassName__name остаётся доступным.

Python: Private Variables
027M2L3
158965
Средний
Содержание и работоспособность

Фрагмент: @get_real_name.setter def set_real_name(...); вызови метод-геттер/метод-сеттер

Проблема: Рабочий, но неидиоматичный пример создаёт два отдельных property под разными именами. Property читают/присваивают как атрибут, а не вызывают как функцию.

Исправление: Использовать @property def real_name(...), @real_name.setter def real_name(...); показать hero.real_name и hero.real_name = новое_имя. Не утверждать, что текущий код сам по себе синтаксически неверен.

Поведение проверено локально в Python
028M2L3
158967
Высокий
Содержание и работоспособность

Фрагмент: * перед options означает, что параметром может быть список с элементами

Проблема: *options собирает позиционные аргументы в tuple. Переданный список без распаковки станет одним элементом этого кортежа.

Исправление: Показать __init__(..., *options), вызов Question(..., "A", "B") и распаковку *answers.

Python: определение функций / *args
029M2L3
158966
Средний
Содержание и работоспособность

Фрагмент: В кнопки Inline можно заложить любой текст от 1 до 64 байт

Проблема: Ограничение 1–64 байта относится к callback_data, а не к видимому тексту кнопки вообще.

Исправление: Разделить text, callback_data и url. Для reply-кнопок объяснить: отправляется текст кнопки, но бот затем может обработать его и ответить другим текстом.

Telegram Bot API: InlineKeyboardButton
030M2L3
158967
Средний
Содержание и работоспособность

Фрагмент: answer_callback_query отправляет в чат уведомление

Проблема: Это ответ на callback-запрос, обычно всплывающее уведомление или alert, а не обычное сообщение истории чата.

Исправление: «Показывает уведомление пользователю, нажавшему кнопку». Для сообщения в чат использовать send_message.

Telegram Bot API: answerCallbackQuery
031M2L3
158967 · 158969
Средний
Содержание и работоспособность

Фрагмент: Отправь результат → bot.send_message(..., "The end")

Проблема: Пример завершения отправляет маркер, а подсчёт результата вынесен в домашнюю работу. Требование в классе и показанный результат не совпадают.

Исправление: В классе явно требовать сообщение о завершении; в домашней работе — подсчёт и вывод очков.

Проверка текста и логики
032M2L4
158984
Средний
Содержание и работоспособность

Фрагмент: self.response = self.get_answer()

Проблема: В условии домашнего задания не объяснены реализация, входы и результат get_answer. Предыдущие инструкции описывают только перевод.

Исправление: Добавить отдельный шаг создания get_answer либо заменить ветку готовым ответом по умолчанию. Если метод уже есть в полном шаблоне, явно сослаться на него.

Пробел в инструкции; отсутствие метода в полном репозитории не проверялось
033M3L1
158989
Средний
Содержание и работоспособность

Фрагмент: NULL ... не является типом данных

Проблема: В терминологии SQLite NULL входит в пять классов хранения. Без оговорки формулировка конфликтует с используемой СУБД.

Исправление: «NULL обозначает отсутствие значения; в SQLite это отдельный класс хранения. В декларациях полей обычно задаём INTEGER, REAL, TEXT, BLOB».

SQLite: Datatypes
034M3L1
158989
Высокий
Содержание и работоспособность

Фрагмент: DROP TABLE movies после всех примеров с movie

Проблема: Название таблицы изменено: команда не удалит созданную в примере таблицу.

Исправление: Заменить на DROP TABLE movie. По желанию использовать IF EXISTS и объяснить его назначение.

Проверка текста и логики
035M3L1
158989
Средний
Содержание и работоспособность

Фрагмент: cur.executemany ... с лишним отступом после закрывающей скобки data

Проблема: В одном из фрагментов строка executemany имеет отступ верхнего уровня без блока.

Исправление: Выровнять cur.executemany по левому краю фрагмента; проверить копирование примера как Python-кода.

Проверка текста и логики
036M3L2
158994
Средний
Содержание и работоспособность

Фрагмент: DATE для дат и времени; тип столбца определяет допустимые значения

Проблема: Общее объяснение SQL не отделено от особенностей SQLite: обычная таблица имеет динамическую типизацию, специального класса хранения DATE нет.

Исправление: Отметить, что в SQLite даты хранят как TEXT/INTEGER/REAL, а жёсткие ограничения типов требуют отдельного механизма, например STRICT.

SQLite: Datatypes
037M3L2
158995 · 158997
Средний
Содержание и работоспособность

Фрагмент: FK — вторичный ключ

Проблема: Foreign key переводится как внешний ключ. «Вторичный» вводит другую терминологию.

Исправление: Во всех объяснениях и подписях заменить на «внешний ключ (FK)».

Проверка текста и логики
038M3L2
158997
Высокий
Содержание и работоспособность

Фрагмент: Связать CarsID.car_id с Cars.car_id → REFERENCES CarsID(cars_id)

Проблема: Код ссылается на CarsID, хотя по описанию родительская таблица — Cars. Также car_id/cars_id не согласованы.

Исправление: Для таблицы CarsID: car_id INTEGER, FOREIGN KEY(car_id) REFERENCES Cars(car_id). Одинаковые имена во всём примере.

Проверка текста и логики
039M3L2–M3L3
158997 · 159003 · 159005
Высокий
Содержание и работоспособность

Фрагмент: Описание ON DELETE CASCADE и SET NULL без включения внешних ключей

Проблема: В показанных подключениях не включена проверка внешних ключей. Нельзя полагаться на настройки сборки SQLite; заявленное поведение не гарантировано.

Исправление: Для каждого нового соединения до транзакции выполнить conn.execute("PRAGMA foreign_keys = ON") и проверить PRAGMA foreign_keys.

SQLite: Foreign Key Support
040M3L2
158997
Средний
Содержание и работоспособность

Фрагмент: SET NULL задаёт поле как тип данных NULL

Проблема: Действие меняет значение дочернего ключа на NULL, а не тип столбца. CASCADE удаляет дочерние строки, а не отдельное поле.

Исправление: Разделить изменение значения и удаление строки; объяснить, что SET NULL несовместимо с NOT NULL для этого поля.

SQLite: Foreign Key Support
041M3L3
159002
Высокий
Содержание и работоспособность

Фрагмент: status TEXT, перед ); в CREATE TABLE marvel

Проблема: Лишняя запятая вызывает синтаксическую ошибку SQLite.

Исправление: Убрать запятую после status TEXT.

Воспроизведено: OperationalError near ")": syntax error
042M3L3
159002
Высокий
Содержание и работоспособность

Фрагмент: DROP TABLE marvel расположен до примеров INSERT / UPDATE / DELETE

Проблема: При последовательном выполнении вставлять и изменять уже нечего.

Исправление: Перенести DROP TABLE в самый конец; отдельно пояснить, что он завершает пример.

Воспроизведено: OperationalError: no such table: marvel
043M3L3
159004
Средний
Содержание и работоспособность

Фрагмент: 40.7128, 74.0060): "New York"

Проблема: В примере пары словаря пропущена открывающая скобка кортежа.

Исправление: Показать полный словарь: {(40.7128, -74.0060): "New York"}; уточнить порядок широта/долгота. Географическое значение здесь — предложенное исправление примера.

Проверка текста и логики
044M3L3
159004
Средний
Содержание и работоспособность

Фрагмент: Содержимое кортежа нельзя изменить; кортежи можно использовать как ключи

Проблема: Не уточнены изменяемые вложенные объекты и хешируемость элементов. Например, tuple с list не годится для ключа.

Исправление: «Нельзя заменить ссылки на элементы кортежа; вложенный список может меняться. Кортеж пригоден как ключ, если все его элементы хешируемы».

Проверка текста и логики
045M4L1
159019
Высокий
Содержание и работоспособность

Фрагмент: connection.close() в шаге 1 → cursor = connection.cursor() в шаге 2

Проблема: Обучающий алгоритм закрывает соединение до выполнения запросов.

Исправление: Перенести close() после fetchall и вывода результата.

Воспроизведено: ProgrammingError: Cannot operate on a closed database
046M4L1
159019 · 159020
Средний
Содержание и работоспособность

Фрагмент: После 2016 года: release_date > "2016"; BETWEEN "2015-01" AND "2015-02"

Проблема: Для ISO-дат сравнение неполных дат даёт не тот диапазон, который учащийся обычно понимает по тексту. Февраль целиком не входит в верхнюю границу "2015-02".

Исправление: Использовать полные границы: >= "2017-01-01" для «после 2016 года»; >= "2015-01-01" AND < "2015-03-01" для января–февраля.

Проверка текста и логики
047M4L1
159021
Высокий
Содержание и работоспособность

Фрагмент: .week.at("Monday 14:00").do(my_task)

Проблема: Такой вызов schedule не задаёт понедельник и время корректно.

Исправление: schedule.every().monday.at("14:00").do(my_task). Во фрагментах расписаний показывать полные выражения с schedule.every().

schedule: Examples / Job.at
048M4L1
159021
Средний
Содержание и работоспособность

Фрагмент: .every().seconds — каждые несколько секунд; .every().days — каждый день в указанное время

Проблема: Без числового аргумента интервал равен одному. Без at время суток не задаётся.

Исправление: «every().seconds — каждую секунду»; «every(5).seconds — каждые 5 секунд»; конкретное время: every().day.at("14:00").

Проверка текста и логики
049M4L1
159024 · 159025 · 159026
Средний
Содержание и работоспособность

Фрагмент: Рефлексия: домашка — SQL-запросы; первое ДЗ — больше картинок

Проблема: После рефлексии размещены два задания, а анонсировано одно. Ученик не понимает обязательный объём.

Исправление: Перечислить оба задания; явно отметить, какое обязательно и какое дополнительное.

Проверка текста и логики
050M4L2
159031
Средний
Содержание и работоспособность

Фрагмент: create_collage(image_paths): num_cols=floor(sqrt(num_images))

Проблема: Пустой список приводит к делению на ноль; размеры изображений должны совпадать, но условие этого не требует. imread может вернуть None.

Исправление: Добавить проверку пустого списка и чтения, привести изображения к общей ширине/высоте. Если это ограничения учебного примера, назвать их до кода.

Проверка текста и логики
051M5L3, внешняя SQL-форма
159056
Высокий
Содержание и работоспособность

Фрагмент: Самый молодой сотрудник → ORDER BY birth_date ASC LIMIT 1

Проблема: ASC выбирает самую раннюю дату рождения, то есть самого старшего сотрудника.

Исправление: Заменить ASC на DESC.

Прочитан вопрос внешней формы https://tally.so/r/nGr0Qj
052M5L4
159075
Средний
Содержание и работоспособность

Фрагмент: show(image) в примере dlib

Проблема: В приведённом фрагменте show не определена и не импортирована. В Colab также нужен подходящий способ показа изображения.

Исправление: Показать from google.colab.patches import cv2_imshow и cv2_imshow(image), либо включить определение show.

Самодостаточность фрагмента; полный notebook отдельно не запускался
053M6L2
159101 · 159084
Средний
Содержание и работоспособность

Фрагмент: Следующий урок — индивидуальные проекты; фактически M6L3 — групповой проект

Проблема: Анонс противоречит названию и заданиям следующего урока.

Исправление: «На следующем уроке начнём групповые проекты».

Проверка текста и логики
054M7L1
159103
Высокий
Содержание и работоспособность

Фрагмент: Mars Climate Orbiter назван марсоходом

Проблема: Это орбитальный аппарат, а не марсоход.

Исправление: «Сбой при подготовке полёта орбитального аппарата Mars Climate Orbiter (1999) из-за несогласованных единиц измерения». Сумму потерь сопровождать отдельным источником.

NASA: Mars Climate Orbiter
055M7L1
159103
Средний
Содержание и работоспособность

Фрагмент: Ручное, автоматизированное, юнит-тестирование как три параллельных метода

Проблема: Смешаны разные оси классификации: способ выполнения и уровень тестирования.

Исправление: Отдельно показать ручное/автоматизированное выполнение и модульное/интеграционное/системное тестирование.

Проверка текста и логики
056M7L1
159111
Средний
Содержание и работоспособность

Фрагмент: В калькуляторе три недоработки

Проблема: Видны по меньшей мере четыре независимые проблемы в рамках задания: знак вычитания в выводе, второй операнд умножения в выводе, деление на ноль и ввод нечислового значения.

Исправление: Заменить фиксированное число на «несколько» или перечислить ожидаемые классы проблем. Сами ошибки кода намеренные, поэтому не считаются отдельными дефектами курса.

Проверка текста и логики
057M7L2
159113
Средний
Содержание и работоспособность

Фрагмент: По итогам unit-теста точно скажем, что функция работает корректно

Проблема: Тест проверяет конкретные случаи и не доказывает корректность для всех входов. Покрытие строк тоже не гарантирует полноту проверок.

Исправление: «Тесты показывают, соответствует ли поведение ожиданиям на выбранных примерах. Даже 100% покрытия не гарантирует отсутствия ошибок».

Проверка текста и логики
058M7L2
159114
Высокий
Содержание и работоспособность

Фрагмент: Установим pip: pip install --upgrade pip; появился pytest.ini

Проблема: Команда обновляет уже установленный pip. Установка/проверка версии pytest не создаёт pytest.ini автоматически.

Исправление: «При необходимости обнови pip». После клонирования указать, что pytest.ini находится в шаблоне; либо дать шаг его ручного создания.

pytest: Configuration
059M7L3
159123 · 159124
Средний
Содержание и работоспособность

Фрагмент: Урок о M7L3_password, но рефлексия и ДЗ о калькуляторе / calculate

Проблема: Разные проекты поданы как один и тот же без перехода.

Исправление: Указать один проект во всех заданиях или явно объяснить переход к отдельному репозиторию калькулятора.

Проверка текста и логики
060M7L3
159124
Высокий
Содержание и работоспособность

Фрагмент: Задание изменяет README.md, команда git add test.py

Проблема: Изменения README не попадут в коммит.

Исправление: git add README.md.

Сопоставление текста задания и команды; Git: git-add
061M7L3
159120
Средний
Содержание и работоспособность

Фрагмент: git clone ... repository_name.git → cd repository-name

Проблема: Имя созданной папки и команда перехода различаются.

Исправление: Согласовать repository_name во всех командах или задать папку явно: git clone URL repository-name.

Проверка текста и логики
062M8L3
159660
Высокий
Содержание и работоспособность

Фрагмент: Пояснение: data["main"]["temp"] после примера Open-Meteo

Проблема: В коде используется другая схема ответа: current_weather.temperature. Пояснение относится к другому API.

Исправление: Заменить на data["current_weather"]["temperature"] и использовать одну схему во всём задании.

Проверка текста и логики
063M8L3
159660
Средний
Содержание и работоспособность

Фрагмент: response.json() вызывается до проверки статуса

Проблема: Ошибочный ответ сервера может не содержать JSON, и код упадёт раньше показанной обработки ошибки.

Исправление: Показать timeout, raise_for_status, затем json(), обработку сетевых ошибок и ошибок декодирования.

Проверка текста и логики
064M9L1, слайды
159669
Средний
Содержание и работоспособность

Фрагмент: Слайд 6: ML vs DL, ML требует ручной обработки, DL автоматически извлекает данные

Проблема: DL — часть ML. Глубокие модели извлекают признаки/представления, но не получают и не очищают исходные данные автоматически.

Исправление: «Глубокое обучение — направление машинного обучения на многослойных нейросетях». Сравнивать с классическими методами ML, «извлекает данные» заменить на «обучает представления/признаки».

IBM: What is Deep Learning?
065M9L3, слайды
159683
Средний
Содержание и работоспособность

Фрагмент: Слайд 5: до 30% всех рабочих мест могут быть автоматизированы к 2030 году

Проблема: Не указан источник, страна, сценарий и измеряемая величина. Известный прогноз McKinsey говорит о доле рабочих часов, что не равно доле рабочих мест.

Исправление: Указать конкретное исследование и его формулировку; например, сценарий McKinsey 2024 для США — до 30% текущих рабочих часов к 2030 году.

McKinsey: A new future of work, 21.05.2024
066M9L3
159684
Средний
Содержание и работоспособность

Фрагмент: Множество корпораций установили полный запрет на ИИ разработчика

Проблема: Широкое изменяющееся утверждение без примеров, даты и источников. Запрет отдельных внешних сервисов не равен запрету любого ИИ.

Исправление: «В отдельных компаниях использование внешних ИИ-сервисов ограничивают из-за требований к данным». Привести проверяемые актуальные примеры либо оформить как гипотетический кейс дебатов.

Требует источника; утверждение не признано подтверждённым фактом
067M2L4, внешняя форма
158982
Высокий
Вопросы, слайды и методические несоответствия

Фрагмент: response.json() принимает структуры json; варианты ответа — список или словарь

Проблема: Метод Response.json не получает JSON как обязательный входной аргумент: он декодирует тело ответа. Результат зависит от JSON и не обязательно является словарём.

Исправление: Указать конкретный JSON-пример и спросить тип его результата. Либо разрешить несколько типов: dict, list и скалярные значения.

Прочитана внешняя форма https://tally.so/r/mVJA4J
068M2L4, внешняя форма
158982
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Верная последовательность обновления GitHub: commit, push; нет add

Проблема: Для новых изменений рабочего дерева пропущено добавление в индекс. Без оговорки про уже подготовленные изменения правильного полного ответа нет.

Исправление: Добавить вариант add → commit → push или оговорить, что изменения уже добавлены в индекс.

Проверка текста и логики
069M2L1, слайды
158970
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайды 4–5: какую структуру можно получить из API? json / dict / list

Проблема: Вопрос не задаёт формат ответа и допускает разные трактовки. JSON — формат, dict/list — структуры Python после декодирования.

Исправление: «В каком текстовом формате PokeAPI возвращает данные?» — JSON; отдельно спросить о результате response.json() для конкретного ответа.

Проверка текста и логики
070M2L3, слайды
158963
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайды 6–7: текущее время с помощью модуля datetime → now()

Проблема: Не указан импорт; у модуля datetime нет функции now на верхнем уровне.

Исправление: Показать from datetime import datetime и вариант datetime.now(), либо import datetime и datetime.datetime.now().

Проверка текста и логики
071M2L4, слайды
158977
Высокий
Вопросы, слайды и методические несоответствия

Фрагмент: Слайды 4–5: *options — ожидание списка

Проблема: Повторяет неверное объяснение *args из предыдущего урока.

Исправление: Спросить: «Как собрать произвольное число позиционных аргументов в кортеж options?» Ответ *options.

Проверка текста и логики
072M3L1, слайды
158986
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайды 8–9: как перевести слово? варианты только создают Translator

Проблема: Создание переводчика само по себе не переводит текст.

Исправление: Заменить вопрос на «Как создать переводчик с русского на английский?» или добавить вызов translator.translate(слово).

Проверка текста и логики
073M4L4 и M5L1, слайды
159040 · 159048
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Половина курса позади

Проблема: После 16 уроков и перед 17-м пройдено 40% курса из 40 уроков.

Исправление: «Позади четыре модуля» или «Позади 16 уроков».

Проверка текста и логики
074M6L3, внешняя форма
159083
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Заголовок формы: Python lvl3. M5L3. Telebot

Проблема: Неверная привязка к уроку: форма размещена в M6L3.

Исправление: Исправить заголовок на M6L3. Telebot.

Прочитана внешняя форма https://tally.so/r/nWALvj
075M7L3, внешняя форма
159119
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Какой метод в pytest проверяет равенство? assert a == b

Проблема: assert — оператор Python, а не метод pytest.

Исправление: «Как записать проверку равенства в тесте?» либо «Какой оператор Python используется для проверки условия?»

Проверка текста и логики
076M7L4, внешняя форма
159128
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Тестовые функции должны начинаться со слова test

Проблема: Для стандартного обнаружения функций pytest использует префикс test_, а не произвольное начало test; правила также настраиваются.

Исправление: «По стандартным правилам обнаружения имя тестовой функции начинается с test_».

Проверка текста и логики
077M8L1, слайды
159646
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайд 2: скрипты выполняются построчно

Проблема: Упрощение неверно объясняет исполнение Python и JavaScript: есть блоки управления, функции, компиляция в байткод/JIT.

Исправление: «Скрипты запускаются соответствующей средой выполнения; порядок действий определяется кодом программы».

Проверка текста и логики
078M8L1, слайды
159646
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайд 3: абсолютный Windows-путь начинается с буквы диска

Проблема: Не учтены UNC-пути; пример Linux|Mac с /home не соответствует обычной домашней папке macOS.

Исправление: Дать C:\Users\... и \\server\share\...; для macOS — /Users/имя/... . Уточнить, что это примеры, а не исчерпывающий синтаксис.

Проверка текста и логики
079M8L2, слайды
159653
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайд 4: без Python инструменты надо открывать вручную; Python работает на всех платформах

Проблема: Создаётся ложное противопоставление системным утилитам, которые также автоматизируются. Датчики/функции psutil зависят от ОС.

Исправление: Сравнить варианты без категорических заявлений; указать ограничения доступа к датчикам, процессам и температуре на разных ОС.

Проверка текста и логики
080M8L2, слайды
159653
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайды 11–13: хватит ли памяти для перечисленных приложений

Проблема: Оценки не учитывают память ОС, настройки, активность вкладок и пиковые нагрузки. Возможен спорный единственный ответ.

Исправление: Считать задачей оценки с диапазонами; добавить потребление ОС и оговорить, что однозначный вывод о скорости без измерений невозможен.

Проверка текста и логики
081M9L1, слайды
159669
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Слайд 9: инструменты вроде GitHub, Copilot

Проблема: Название продукта разделено запятой. GitHub как хостинг не тождественен ИИ-помощнику. Прогнозы о сроках также даны без даты.

Исправление: Написать «GitHub Copilot»; сценарии будущего отметить как предположения и датировать материал.

Проверка текста и логики
082M9L2
159677 · 159673
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Формулируем эффективный промптинг; готовить качественный промтинг

Проблема: Формулируют конкретный запрос — промпт. Промптинг означает процесс/практику составления запросов.

Исправление: «Формулируем эффективный промпт»; «научимся составлять качественные промпты».

Проверка текста и логики
083M10L1
159130
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Баллы за проект делятся поровну между участниками

Проблема: Сложность проекта не уменьшается пропорционально числу участников; правило снижает индивидуальную награду за командную работу. Это методическое решение, а не фактическая ошибка.

Исправление: Пересмотреть мотивацию: общая базовая оценка плюс индивидуальный вклад либо отдельные критерии командного проекта.

Методическое замечание, требует решения автора курса
084M10L3
159143
Средний
Вопросы, слайды и методические несоответствия

Фрагмент: Клонируй проект одногруппника и запускай после удаления токена из репозитория

Проблема: Не описаны настройка собственного токена, установка зависимостей и создание БД. Правильный запрет публикации токена делает эти шаги необходимыми.

Исправление: Добавить чек-лист: requirements, config.example/.env.example, собственный тестовый бот, инициализация БД и команда запуска.

Проверка текста и логики
085Много уроков
158942 · 158944 · 158920 · 158968 · 159010
Низкий
Орфография, грамматика и редактура

Фрагмент: Телеграмм, телеграмм-бот

Проблема: Для названия мессенджера лишняя буква м; в курсе встречаются оба написания.

Исправление: Единообразно: Telegram, «Телеграм», «телеграм-бот». Отдельно унифицировать GitHub, VS Code, OpenCV, Pygame Zero.

Повторяющаяся правка; ссылки — примеры, а не полный список вхождений
086M1L1
158937
Низкий
Орфография, грамматика и редактура

Фрагмент: Объект и Класс это одно и то же?; финальный символ ]

Проблема: Ненужная заглавная буква, отсутствует тире; в конце блока лишняя скобка.

Исправление: «Объект и класс — это одно и то же?»; удалить ].

Проверка текста и логики
087M1L1
158938
Низкий
Орфография, грамматика и редактура

Фрагмент: открисовки; перснажа; коордианат

Проблема: Опечатки в комментариях к коду.

Исправление: отрисовки; персонажа; координат.

Проверка текста и логики
088M1L1
158939
Низкий
Орфография, грамматика и редактура

Фрагмент: другие значение; обратиться к аргументам класса

Проблема: Нарушение согласования и неточный термин.

Исправление: «другие значения»; «обратиться к атрибутам экземпляра».

Проверка текста и логики
089M1L2
158919 · 158923
Низкий
Орфография, грамматика и редактура

Фрагмент: Кроме это; для создание; вспомим

Проблема: Опечатки и ошибки управления.

Исправление: «Кроме этого»; «для создания»; «вспомним».

Проверка текста и логики
090M1L2
158925
Низкий
Орфография, грамматика и редактура

Фрагмент: прогрумму; испольовать

Проблема: Опечатки.

Исправление: программу; использовать.

Проверка текста и логики
091M1L3
158930
Низкий
Орфография, грамматика и редактура

Фрагмент: Измения; для вызовала pull

Проблема: Опечатки.

Исправление: изменения; для вызова pull.

Проверка текста и логики
092M1L3
158931
Низкий
Орфография, грамматика и редактура

Фрагмент: расссотрим; услове; статус-пользователя

Проблема: Опечатки и необоснованный дефис.

Исправление: рассмотрим; условие; статус пользователя.

Проверка текста и логики
093M1L3
158933 · 158934
Низкий
Орфография, грамматика и редактура

Фрагмент: сохраяет; взиамодействия; попробуть; с основным заданиям

Проблема: Опечатки и согласование.

Исправление: сохраняет; взаимодействия; попробуй; с основным заданием.

Проверка текста и логики
094M1L4 и повтор
158951 · 159006 · 159100
Низкий
Орфография, грамматика и редактура

Фрагмент: Инициализурий репозиторий

Проблема: Повторяющаяся опечатка в копируемом блоке GitHub.

Исправление: Инициализируй репозиторий.

Проверка текста и логики
095M1L4 и M2L3
158952 · 158968
Низкий
Орфография, грамматика и редактура

Фрагмент: инетресней

Проблема: Опечатка в рефлексии.

Исправление: интереснее.

Проверка текста и логики
096M2L1
158972 · 158975 · 158976
Низкий
Орфография, грамматика и редактура

Фрагмент: родителеського; поиграли в нее [бота]; для поучения информации

Проблема: Опечатки и неверное согласование.

Исправление: родительского; «поиграли с ним» или «поиграли в игру»; для получения информации.

Проверка текста и логики
097M2L1–M2L2
158974 · 158960
Высокий
Орфография, грамматика и редактура

Фрагмент: git сommit

Проблема: В команде первая с кириллическая U+0441. При копировании Git не распознает подкоманду.

Исправление: Заменить всю команду латиницей: git commit. Проверить остальные копии блока.

Визуальный текст и проверка Unicode-кода символа
098M2L2
158957 · 158958
Низкий
Орфография, грамматика и редактура

Фрагмент: представленны; по разному; ссоздания; бибилиотеке; пользвателя; возвраащет; подстрака

Проблема: Серия опечаток в теории полиморфизма.

Исправление: представлены; по-разному; создания; библиотеке; пользователя; возвращает; подстрока.

Проверка текста и логики
099M2L2
158959 · 158961 · 158962
Низкий
Орфография, грамматика и редактура

Фрагмент: по подробнее; для управлением времени; ориинальности

Проблема: Ошибки написания и управления.

Исправление: поподробнее; для управления временем; оригинальности.

Проверка текста и логики
100M2L3
158965 · 158966 · 158967 · 158969
Низкий
Орфография, грамматика и редактура

Фрагмент: Изменени; для это; репозторий; ответил на все ответы; даных

Проблема: Опечатки и смысловая оговорка.

Исправление: Измени; для этого; репозиторий; ответил на все вопросы; данных.

Проверка текста и логики
101M2L4
158979 · 158980 · 158981 · 158983 · 158984
Низкий
Орфография, грамматика и редактура

Фрагмент: билиотек; Ключем; экзамепляр; найди нужно команду; Сегодны; чтообы; ппредназначение

Проблема: Опечатки и согласование.

Исправление: библиотек; ключом; экземпляр; найди нужную команду; Сегодня; чтобы; предназначение.

Проверка текста и логики
102M3L1
158989
Низкий
Орфография, грамматика и редактура

Фрагмент: с помощь; из таблицу; комады

Проблема: Орфография и управление.

Исправление: с помощью; из таблицы; команды.

Проверка текста и логики
103M3L2
158995 · 158996 · 158997 · 158998 · 159000
Низкий
Орфография, грамматика и редактура

Фрагмент: спроектрировать; диаграм; соедни; талиц; Архиектура; перменная; ключего; выпполняться; информауией

Проблема: Опечатки. В 158997 два пункта №3.

Исправление: спроектировать; диаграмм; соедини; таблиц; Архитектура; переменная; ключевого; выполняться; информацией. Исправить нумерацию.

Проверка текста и логики
104M3L3
159002 · 159003 · 159004 · 159007
Низкий
Орфография, грамматика и редактура

Фрагмент: следуюшую; перемнными; реалищуй; тоже самое для нашей таблицу; 20 балов

Проблема: Опечатки и грамматика.

Исправление: следующую; переменными; реализуй; то же самое для нашей таблицы; 20 баллов.

Проверка текста и логики
105M3L4
159012 · 159013 · 159016 · 159017
Низкий
Орфография, грамматика и редактура

Фрагмент: помошью; вывод интерфейс; Бот-порфолио; программситов; начали закончили; бъемный; ориинальности

Проблема: Опечатки и незавершённая редактура.

Исправление: помощью; вывод интерфейса; Бот-портфолио; программистов; «закончили»; объёмный; оригинальности.

Проверка текста и логики
106M4L1
159022 · 159025 · 159026
Низкий
Орфография, грамматика и редактура

Фрагмент: зарегестрированных; случайно выбранной призе; отпралены; Проврь; искуственный; изоражений; в декабря

Проблема: Ошибки и опечатки.

Исправление: зарегистрированных; случайно выбранном призе; отправлены; Проверь; искусственный; изображений; в декабре.

Проверка текста и логики
107M4L2
159027 · 159028 · 159029 · 159031 · 159034
Низкий
Орфография, грамматика и редактура

Фрагмент: спродюссировали [режиссёры]; победеителей; пользоватлей; достиженя; аккуанта

Проблема: Опечатки, а комментарий о режиссёрах называет другую профессию.

Исправление: срежиссировали; победителей; пользователей; достижения; аккаунта.

Проверка текста и логики
108M4L3–M4L4
159037 · 159041
Низкий
Орфография, грамматика и редактура

Фрагмент: Данное слово или чат; Переходи во ссылке; вместе с фильмов; выод

Проблема: Опечатки и ошибки управления.

Исправление: «Данное слово или фразу ...»; «Переходи по ссылке»; «вместе с фильмом»; вывод.

Проверка текста и логики
109M5L1
159049
Низкий
Орфография, грамматика и редактура

Фрагмент: как сделат; бибилиотеку; сообщение о успешной

Проблема: Опечатки и благозвучие.

Исправление: как сделать; библиотеку; сообщение об успешной.

Проверка текста и логики
110M5L3–M5L4
159058 · 159062 · 159072 · 159073 · 159075
Низкий
Орфография, грамматика и редактура

Фрагмент: оценит их выставит; командного палитры; имебщегося; Отрывай блокнот; ипользованием; Программа сложно будет масштабировать

Проблема: Ошибки согласования, пропущенный союз, опечатки.

Исправление: оценит их и выставит; командной палитры; имеющегося; Открывай; использованием; Программу сложно будет масштабировать.

Проверка текста и логики
111M6L1–M6L3
159078 · 159085 · 159102
Низкий
Орфография, грамматика и редактура

Фрагмент: прблемы; Используйт; бот печает

Проблема: Опечатки.

Исправление: проблемы; Используйте; бот печатает.

Проверка текста и логики
112M7L1–M7L3
159104 · 159105 · 159106 · 159107 · 159111 · 159117 · 159121 · 159122
Низкий
Орфография, грамматика и редактура

Фрагмент: в код закралось две/три; добавиться навык; документаций; в интернет; Пригло время

Проблема: Повторяющиеся ошибки согласования и опечатки.

Исправление: в код закрались две/три; добавится навык; документацией; в интернете; Пришло время.

Проверка текста и логики
113M7L4
159126
Низкий
Орфография, грамматика и редактура

Фрагмент: Это отличный выбором

Проблема: Ошибка согласования.

Исправление: Это отличный выбор / Это является отличным выбором.

Проверка текста и логики
114M8L1
159647
Низкий
Орфография, грамматика и редактура

Фрагмент: Назови папку folder_scrtipt; далее folder_script

Проблема: Имена различаются; это может сломать последующую проверку рабочей папки.

Исправление: Везде folder_script.

Проверка текста и логики
115M8L3–M8L4
159666 · 159667
Низкий
Орфография, грамматика и редактура

Фрагмент: по новому; В это означает

Проблема: Орфография и опечатка.

Исправление: по-новому; А это означает.

Проверка текста и логики
116M9L2–M9L4
159679 · 159680 · 159685 · 159687 · 159690 · 159692
Низкий
Орфография, грамматика и редактура

Фрагмент: ты ты; по другому; риски с работы; Прошла время; становиться; мы создал

Проблема: Дубль слова, орфография и согласование.

Исправление: ты; по-другому; риски работы; Пришло время; становится; мы создали.

Проверка текста и логики
117M10L2–M10L3
159135 · 159139 · 159143 · 159144
Низкий
Орфография, грамматика и редактура

Фрагмент: бессмыслено; привлекаешь пользователь; Время подготовится; ты хотите; у тебе; соответсвует; вермя

Проблема: Орфография и согласование.

Исправление: бессмысленно; привлекаешь пользователей; Время подготовиться; ты хочешь; у тебя; соответствует; время.

Проверка текста и логики
118M10L4, внешняя форма
159141
Низкий
Орфография, грамматика и редактура

Фрагмент: Что хотелось бы, что бы ...; домашнее задание ... делать ее

Проблема: Ошибка в написании чтобы и согласовании с «задание».

Исправление: «Что хотелось бы изменить в будущем курсе?»; «делать его».

Прочитана внешняя анкета; ответы не отправлялись
119M1L1, слайды
158935
Низкий
Орфография, грамматика и редактура

Фрагмент: Слайд 7: с встроенной БД; 10: друзей с разных городов; 12: присоединиться в комьюнити

Проблема: Ошибки предлогов и благозвучия.

Исправление: со встроенной БД; друзей из разных городов; присоединиться к комьюнити.

Проверка текста и логики
120M2L3–M2L4, слайды
158963 · 158977
Низкий
Орфография, грамматика и редактура

Фрагмент: инкапусляция; Как в создать в параметрах ...

Проблема: Опечатка в варианте ответа и лишний предлог.

Исправление: инкапсуляция; Как задать в параметрах ... . Само объяснение *options исправить по содержательному замечанию выше.

Проверка текста и логики
121M8L3, слайды
159657
Низкий
Орфография, грамматика и редактура

Фрагмент: Волшебная кнопка: чтобы она делала?

Проблема: Вопросительное сочетание ошибочно написано слитно.

Исправление: что бы она делала?

Проверка текста и логики
122M5L3–M5L4: совместимость библиотек
159059 · 159071 · 159072
Высокий
Содержание и работоспособность

Фрагмент: pip install opencv-python без версии; затем cv2.CascadeClassifier(cv2.data.haarcascades + XML)

Проблема: В OpenCV 5 Haar CascadeClassifier перенесён из основной поставки в opencv_contrib/xobjdetect. Код урока рассчитан на прежнюю поставку OpenCV 4; установка 5.0.0.93 основного пакета несовместима с этим примером. В последующем проходе это также воспроизведено локальным запуском: OpenCV 5.0.0.93 падает с AttributeError, OpenCV 4.12.0.88 загружает классификатор. Страница PyPI 5.0 при этом всё ещё содержит старый пример — её описания недостаточно для проверки совместимости.

Исправление: Для сохранения текущего урока зафиксировать opencv-python==4.12.0.88 в requirements.txt и указать проверенные Python/ОС/NumPy. Страница этой версии документирует ровно используемый вызов. Альтернатива — отдельно адаптировать пример к OpenCV 5/contrib и поставке XML, проверив готовую сборку. Не устанавливать несколько пакетов opencv-* одновременно: они используют общий cv2. Добавить предварительную проверку версии, наличия CascadeClassifier и успешной загрузки XML.

Дополнительно воспроизведено: чистые окружения OpenCV 5.0.0.93 и 4.12.0.88, Python 3.13.5/macOS ARM64. В 5.0 класса нет; 4.12 загружает XML. Файлы .library-audit/current-results.json и opencv4-results.json.
123M5L1: пример requirements
159049
Высокий
Содержание и работоспособность

Фрагмент: numpy==1.21.2 в примере requirements.txt

Проблема: NumPy 1.21.2 требует Python >=3.7,<3.11. На проверенном Python 3.13.5 установка не разрешается; пример без версии Python невоспроизводим на современной учебной среде.

Исправление: Обновить пример согласованными версиями и явно указать Python. Для проверенного набора этого прохода: Python 3.13.5, numpy==2.2.6 с opencv-python==4.12.0.88. Не переносить этот набор автоматически на другие Python/ОС.

PyPI metadata NumPy 1.21.2 и pip dry-run; .library-audit/resolver-results.json
124M5L1: пример установки
159049
Средний
Содержание и работоспособность

Фрагмент: pip install pandas==1.2.0

Проблема: На Python 3.13/macOS ARM64 готовая бинарная сборка этой старой версии не найдена. Обычный pip может перейти к сложной сборке из исходников. Это устаревший демонстрационный пример, а не доказательство неисправности текущего pandas.

Исправление: Использовать актуальный пример или указать совместимую старую среду. Pandas не включать в обязательные зависимости курса, если проекты его не используют.

Проверка доступности wheel: .library-audit/resolver-results.json; сборка pandas из исходников не выполнялась
125M5L3: Jupyter в VS Code
159062
Средний
Содержание и работоспособность

Фрагмент: Jupyter: Create New Blank Notebook; import notebook to script

Проблема: Указанный интерфейс расходится с текущей инструкцией Microsoft. Нужны современная команда создания, выбор конкретного Python-ядра и актуальный способ экспорта. Установка библиотеки в один Python не устанавливает её в другое выбранное ядро.

Исправление: Показать Create: New Jupyter Notebook / новый .ipynb, Select Kernel с окружением проекта, затем ... → Export → Python Script. Для локального исполнения установить ipykernel в то же окружение.

Microsoft VS Code: Jupyter Notebooks; локально выполнены notebook и экспорт Python
126M8L2: слайды и измерение CPU
159653 · 159654
Средний
Содержание и работоспособность

Фрагмент: psutil.cpu_percent() показывает текущую загрузку

Проблема: Вызов без интервала не гарантирует полезное первое измерение: документация требует игнорировать первую пробу или задать interval. Это влияет на корректность учебного мониторинга.

Исправление: Для первого понятного примера использовать psutil.cpu_percent(interval=1). При неблокирующем цикле отбросить первую пробу и выдерживать интервал между последующими.

Официальная документация psutil cpu_percent; вызов с interval=0.1 выполнен
127M5L2: первое построение карты
159065
Средний
Содержание и работоспособность

Фрагмент: ax.coastlines(); cfeature.BORDERS

Проблема: Cartopy при первом рендере берегов и границ загружает данные Natural Earth. Пакет может быть установлен корректно, но первое выполнение зависит от сети и доступности каталога кэша. Для stock_img такого скачивания в проверенном примере не потребовалось.

Исправление: Добавить шаг первого запуска с доступом к интернету или подготовленный кэш Natural Earth, пояснить DownloadWarning. Показать, где хранится data_dir.

Выполнен реальный рендер; .library-audit/network-results.json и coastlines.png

Источники и проверка

Ключевые ошибки воспроизведены минимальными локальными примерами Python и SQLite. Сетевые запросы из учебного кода не выполнялись.

Покрытие по урокам

279 открытых карточек. Для встроенных тестов прочитан экран запуска. Ограничения полного технического аудита приведены в начале отчёта и в Markdown-версии.

УрокТемаКарточек
M1L1Начнём путешествие10
M1L2Создаём бота9
M1L3Осваиваем Git8
M1L4Играем с покемонами9
M2L1Наследование7
M2L2Полиморфизм8
M2L3Бот-викторина7
M2L4Бот-переводчик10
M3L1Введение в БД7
M3L2Архитектура БД8
M3L3Логика портфолио9
M3L4Telegram портфолио8
M4L1Аукцион9
M4L2Аукцион: продолжение8
M4L3SQL-соревнование5
M4L4Индивидуальный проект9
M5L1Matplotlib8
M5L2Карта городов7
M5L3OpenCV7
M5L4Обработка фото6
M6L1Архитектура проекта7
M6L2Генератор картинок7
M6L3Групповой проект: план6
M6L4Групповой проект: реализация8
M7L1Введение в тестирование9
M7L2Unit-тесты7
M7L3Совместная работа6
M7L4Самостоятельное тестирование4
M8L1Файловая система7
M8L2Мониторинг ресурсов5
M8L3Веб-сервисы6
M8L4Системный бот6
M9L1Введение в ИИ7
M9L2Промптинг7
M9L3Этика ИИ6
M9L4Новые инструменты5
M10L1Итоговый проект 16
M10L2Итоговый проект 25
M10L3Итоговый проект 34
M10L4Выпускной2